Cloud computing is generally becoming the platform of choice for businesses that want to reduce operating expenses and be able to scale resources rapidly. Eased automation, flexibility, mobility, resiliency, and redundancy are several other advantages of moving resources to the cloud. Many organizations are being introduced to cloud computing by building an on-premise Infrastructure-as-a-Service (IaaS) cloud, which delivers computing, storage, and networking resources to users. Virtual machines in cloud computing are, for the most part, ephemeral. The state of a virtual machine is not persistent and is lost at shut down. A set of virtual machines can be launched with a particular configuration in a cloud one day and can be launched in a different cloud provider environment the next day. Traditional solutions typically have application developers manually define and set up configuration files of various sorts. At deployment, an extensive amount of time and work is dedicated to setting up the configuration on each individual machine, in order to get the machine to communicate with other systems, resources, etc. Configuration is particularly slow and prone to error if the configuration of some virtual machines depends on the configuration of other virtual machines.